﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SDMX_ML.Framework.Common;

namespace SDMX_ML.Framework.Structure
{
    public class ConceptSchemeType
    {
        private List<TextType> _name;
        private List<TextType> _description;
        private AnnotationsType _annotations;
        private List<ConceptType> _concept;
        
        private string _id;
        private string _agencyid;
        private string _uri;
        private string _urn; 
        private bool? isExternalReference;
        private bool? isFinal;
        private TimePeriodType _validFrom;
        private TimePeriodType _validTo;
        private string _version;

        public ConceptSchemeType()
        {
            _name = new List<TextType>();
            _description = new List<TextType>();
            _annotations = new AnnotationsType();
            _concept = new List<ConceptType>();
        }

        public List<ConceptType> Concept
        {
            get { return _concept; }
            set { _concept = value; }
        }

        public List<TextType> Name
        {
            get { return _name; }
            set { _name = value; }
        }

        public List<TextType> Description
        {
            get { return _description; }
            set { _description = value; }
        }

        public AnnotationsType Annotations
        {
            get { return _annotations; }
            set { _annotations = value; }
        }

        public string Id
        {
            get { return _id; }
            set { _id = value; }
        }

        public string AgencyID
        {
            get { return _agencyid; }
            set { _agencyid = value; }
        }
        
        public string Uri
        {
            get { return _uri; }
            set { _uri = value; }
        }

        public string Urn
        {
            get { return _urn; }
            set { _urn = value; }
        }

        public bool? IsExternalReference
        {
          get { return isExternalReference; }
          set { isExternalReference = value; }
        }

        public bool? IsFinal
        {
          get { return isFinal; }
          set { isFinal = value; }
        }

        public TimePeriodType ValidFrom
        {
            get { return _validFrom; }
            set { _validFrom = value; }
        }

        public TimePeriodType ValidTo
        {
            get { return _validTo; }
            set { _validTo = value; }
        }

        public string Version
        {
            get { return _version; }
            set { _version = value; }
        }
    }
}
